package com.yuesystem.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuesystem.entity.User;
import java.util.List;

/**
 * 用户接口.
 */
public interface UserService extends IService<User> {
  // 注册账号
  void register(String phone, String code, String password, String confirmPassword);
  
  /**
   * 登录验证.
   *
   * @param phone 电话号码
   * @param password 密码
   * @return 登录用户
   */
  User loginCheck(String phone, String password);
  
  /**
   * 根据phone找id.
   *
   * @param phone 电话号码
   * @return 该电话的用户id
   */
  Long getByPhone(String phone);
  
  
  /**
   * 根据id返回用户基本信息.
   *
   * @param id 用户id
   * @return 用户信息
   */
  User getUserMassageById(Long id);
  
  /**
   * 修改个人信息.
   *
   * @param user 用户
   */
  //修改个人信息
  void updateMassageById(User user);
  
  /**
   * 忘记密码.
   *
   * @param phone 电话号码
   * @param code 验证码
   * @param newPassword 新密码
   * @param confirmNewPassword 确认密码
   */
  void forgetPassword(String phone, String code, String newPassword,
                      String confirmNewPassword);
  
  /**
   * 重置密码.
   *
   * @param oldPassword 旧密码
   * @param newPassword 新密码
   * @param confirmNewPassword 确认密码
   */
  void resetPassword(String oldPassword, String newPassword, String confirmNewPassword);
  
  
  /**
   * 分页显示用户.
   *
   * @param page 页面个数
   * @param pageSize 页面大小
   * @param name 用户名
   * @param phone 用户电话
   * @param status 用户身份
   * @return 用户表
   */
  Page<User> getUsers(int page, int pageSize, String name, String phone, int status);
  
  /**
   * 升级某个用户为编辑.
   *
   * @param id 用户id
   */
  void upgrade1(Long id);
  
  /**
   * 升级某个用户为客服.
   *
   * @param id 用户id
   */
  void upgrade2(Long id);
  
  
  /**
   * 获得所有的客服.
   */
  List<User> getService();
  
  /**
   * 获得所有的管理员.
   */
  List<User> getAdmin();
  
  /**
   * 获得所有的编辑.
   */
  List<User> getEdit();
  
}
